package com.pisces.core;


import com.jfinal.plugin.activerecord.Page;
import com.pisces.tool.query.QueryObject;

import java.util.List;

public interface IBaseService<M> {

	M findById(long id);

	/**
	 * 保存实体, 保存成功后，返回的实体存在id值。
	 * 
	 * @param model 实体
	 * @return 保存成功的对象
	 */
	M save(M model);

	/**
	 * 更新一个model
	 * @param model 需要更新的model
	 */
	M update(M model);

	boolean delete(long id);

	/**
	 * 列表
     */
	List<M> findList(QueryObject queryObject);

	/**
	 * 分页列表
	 */
	public Page<M> paginate(QueryObject queryObject);

}
